/*
 * @Author: xujianwei
 * @Date: 2021-11-16 11:12:46
 * @LastEditors: xujianwei
 * @LastEditTime: 2021-11-18 16:51:31
 */
 import {
     bubble,
     selection,
     insertion,
     shell,
     merge,
     quick
} from '../sort/index.mjs'
import {clone}  from '../tools/clone.mjs'
import {ramdomArray} from '../tools/utils.mjs'

let len = 10000000
let max = 1000
console.time('数据生成耗时')
 let arr = ramdomArray(len,max,true)
 console.timeEnd('数据生成耗时')
 console.time('系统排序耗时')
 let ans = clone(arr).sort((a1,a2)=>a1-a2).join(',')
 console.timeEnd('系统排序耗时')

 function test(res = []){
     return res.join(',') === ans
 }

// console.log('测试数组长度：', len)
// console.log(`测试数组范围：0-${max}`)
// console.log('------------')

// // 数据大于10w时候 超过18s 效率太差，请注释
// console.time('冒泡排序耗时')
// console.log('冒泡排序测试结果', test(bubble(clone(arr))))
// console.timeEnd('冒泡排序耗时')
// console.log('------------')

// // 数据大于20w时候 超过16s 效率太差，请注释
// console.time('选择排序耗时')
// console.log('选择排序测试结果',test(selection(clone(arr))))
// console.timeEnd('选择排序耗时')
// console.log('------------')

// // // 数据大于30w时候 超过16s 效率太差，请注释
// console.time('插入排序耗时')
// console.log('插入排序测试结果',test(insertion(clone(arr))))
// console.timeEnd('插入排序耗时')
// console.log('------------')

// // 数据大于3000w时候 超过16s 效率太差，请注释
// console.time('希尔排序耗时')
// console.log('希尔排序测试结果',test(shell(clone(arr))))
// console.timeEnd('希尔排序耗时')



// // 数据大于 20w 时候 超过10s 效率太差，请注释
// console.time('归并排序耗时')
// console.log('归并排序测试结果',test(merge(clone(arr))))
// console.timeEnd('归并排序耗时')



// 数据大于 2000w 时候 超过18s 效率太差，请注释
// console.time('快速排序耗时')
// console.log('快速排序测试结果',test(quick(clone(arr))))
// console.timeEnd('快速排序耗时')
